//public class Test {
////    public static void main(String[] args) {
////
////        // 使用常量串构造
////        String s1 = "hello world";
////        System.out.println(s1);
////
////        // 直接newString对象
////        String s2 = new String("hello world");
////        System.out.println(s1);
////
////        // 使用字符数组进行构造
////        char[] array = {'h','e','l','l','o','w','o','r','l','d'};
////        String s3 = new String(array);
////        System.out.println(s1);
////public boolean equals(Object anObject){
////    // 1. 先检测this 和 anObject 是否为同一个对象比较，如果是返回true
////    if (this == anObject) {
////        return true;
////    }
////    // 2. 检测anObject是否为String类型的对象，如果是继续比较，否则返回false
////    if (anObject instanceof String) {
////        // 将anObject向下转型为String类型对象
////        String anotherString = (String) anObject;
////        int n = value.length;
////        // 3. this和anObject两个字符串的长度是否相同，是继续比较，否则返回false
////        if (n == anotherString.value.length) {
////            char v1[] = value;
////            char v2[] = anotherString.value;
////            int i = 0;
////            // 4. 按照字典序，从前往后逐个字符进行比较
////            while (n-- != 0) {
////                if (v1[i] != v2[i])
////                    return false;
////                i++;
////            }
////            return true;
////        }
////    }
////    return false;
////}
//
////    public static void main(String[] args) {
////        String s1 = new String("hello");
////        String s2 = new String("hello");
////        String s3 = new String("Hello");
////        // s1、s2、s3引用的是三个不同对象，因此==比较结果全部为false
////        System.out.println(s1 == s2); // false
////        System.out.println(s1 == s3); // false
////        // equals比较：String对象中的逐个字符
////        // 虽然s1与s2引用的不是同一个对象，但是两个对象中放置的内容相同，因此输出true
////        // s1与s3引用的不是同一个对象，而且两个对象中内容也不同，因此输出false
////        System.out.println(s1.equals(s2)); // true
////        System.out.println(s1.equals(s3)); // false
////    }
//
////    public static void main(String[] args) {
////
////        String s1 = new String("hello");
////        String s2 = new String("hello");
////        String s3 = new String("Hello");
////        // s1、s2、s3引用的是三个不同对象，因此==比较结果全部为false
////        System.out.println(s1 == s2); // false
////        System.out.println(s1 == s3); // false
////
////        // equals比较：String对象中的逐个字符
////        // 虽然s1与s2引用的不是同一个对象，但是两个对象中放置的内容相同，因此输出true
////        // s1与s3引用的不是同一个对象，而且两个对象中内容也不同，因此输出false
////        System.out.println(s1.equals(s2)); // true
////        System.out.println(s1.equals(s3)); // false
////
////    }
//
////    public static void main(String[] args) {
////        String s1 = new String("abc");
////        String s2 = new String("ac");
////        String s3 = new String("abc");
////        String s4 = new String("abcdef");
////        System.out.println(s1.compareTo(s2)); // 不同输出字符差值-1
////        System.out.println(s1.compareTo(s3)); // 相同输出 0
////        System.out.println(s1.compareTo(s4)); // 前k个字符完全相同，输出长度差值 -3
////    }
//
////    public static void main(String[] args) {
////        String s1 = new String("abc");
////        String s2 = new String("ac");
////        String s3 = new String("ABc");
////        String s4 = new String("abcdef");
////        System.out.println(s1.compareToIgnoreCase(s2)); // 不同输出字符差值-1
////        System.out.println(s1.compareToIgnoreCase(s3)); // 相同输出 0
////        System.out.println(s1.compareToIgnoreCase(s4)); // 前k个字符完全相同，输出长度差值 -3
////    }
//
////    public static void main(String[] args) {
////        String s = "aaabbbcccaaabbbccc";
////        System.out.println(s.charAt(3)); // 'b'
////        System.out.println(s.indexOf('c')); // 6
////        System.out.println(s.indexOf('c', 10)); // 15
////        System.out.println(s.indexOf("bbb")); // 3
////        System.out.println(s.indexOf("bbb", 10)); // 12
////        System.out.println(s.lastIndexOf('c')); // 17
////        System.out.println(s.lastIndexOf('c', 10)); // 8
////        System.out.println(s.lastIndexOf("bbb")); // 12
////        System.out.println(s.lastIndexOf("bbb", 10)); // 3
////    }
//
//    public static void main(String[] args) {
//        // 数字转字符串
//        String s1 = String.valueOf(1024);
//        String s2 = String.valueOf(12.24);
//        String s3 = String.valueOf(true);
//        String s4 = String.valueOf(new Student("张三", 18));
//        System.out.println(s1);
//        System.out.println(s2);
//        System.out.println(s3);
//        System.out.println(s4);
//        System.out.println("=================================");
//        // 字符串转数字
//        // 注意：Integer、Double等是Java中的包装类型，这个后面会讲到
//        int data1 = Integer.parseInt("1234");
//        double data2 = Double.parseDouble("12.34");
//        System.out.println(data1);
//        System.out.println(data2);
//    }
//}
//class Student {
//    String name;
//    int age;
//    public Student(String name, int age) {
//        this.name = name;
//        this.age = age;
//    }
//}